﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ModelUML
{
    [Serializable]
    public class InterfejsUML : ElementUML
    {
        public List<iInterfejs> lista_iKlas;
        internal KontenerUML kontener = null;
        public InterfejsUML(String nazwa)
        {
            lista_iKlas = new List<iInterfejs>();
            Nazwa = nazwa;
            operacje = new KolekcjaUML();            
        }
        internal KolekcjaUML operacje;
        public void DodajOperacje(OperacjaUML operacja)
        {
            operacje.Dodaj(operacja);
        }
        public OperacjaUML DodajOperacje(String nazwa, String nazwaTypu)
        {
            OperacjaUML operacja = null;
            bool typIstnieje = false;
            TypDanychUML typ = null;
            foreach (ElementUML e in kontener.Elementy)
            {
                if (e.Nazwa == null) continue;
                if (e.Nazwa.Equals(nazwaTypu))
                {
                    typIstnieje = true;
                    typ = (TypDanychUML)e;
                    break;
                }
            }
            if (!typIstnieje)
            {
                typ = kontener.DodajPrymityw(nazwaTypu);
            }
            operacja = new OperacjaUML(nazwa, typ);
            operacje.Dodaj(operacja);
            return operacja;
        }
        public int IloscOperacji
        {
            get
            {
                return operacje.Count;
            }
        }
        public OperacjaUML GetOperacje(int index)
        {
            return (OperacjaUML)operacje[index];
        }
        public void UsunOperacje(OperacjaUML operacja)
        {
            operacje.Usun(operacja);
        }
    }
}
